Présentation
Durée estimée: 15 minutes
Présentation du projet
L’objectif de ce cycle est de réaliser une application mobile de type UBER ou Pokemon qui utilise la géolocalisation, les cartes et le partage d’informations sur le web.
L’objectif plus général est d’aborder des méthodes de développement qui correspondent à la réalisation de projets complexes.
Ici, nous avons choisi une application de type Uber.
Sélectionner un chauffeur pour aller place du Trocadéro |
Examiner la durée et le prix de la course avant de confirmer |
Côté chauffeur, vérifier la commande et valider |
Ce canevas peut servir de base aux jeux ou applications géolocalisées en réseau, que vous imaginerez.
Pré-requis :
Les notions utilisées dans ce projet sont assez nombreuses : géolocalisation (GPS, Wifi, adresse,…), listes et listes de listes, bases de données locales puis en réseau, URI/URL, serveurs d’images et de données XML, filtrage (parsing), processus asynchrones, etc.
Chacune sera présentée avec des indications pour les acquérir ou les réviser. Il est toutefois préférable que vous ayez déjà réalisé - avec App Inventor - des programmes comprenant plusieurs évènements et composants avec au moins une centaine de blocs.
L'étape 1, assez facile, permet de se familiariser avec les URLs et l'utilisation des serveurs.
La deuxième porte sur l'organisation des données avec les listes. Elle est assez difficile, mais une fois franchie, elle vous permettra d'aller loin.
Ensuite, jusqu'à l'étape 7, la difficulté est liée à l'augmentation de la taille du programme. Elle implique une méthodologie de développement (analyse fonctionnelle, pseudo-code, mise en place de moyens de test et de debug, respect de conventions de nommage, etc.) Cet aspect méthodologique est peut-être celui qui sera le plus nouveau pour vous. Il vous permettra d’envisager des projets plus puissants et de travailler à plusieurs, …
Les étapes 7 et suivantes abordent le partage de données en réseau et leurs interactions (transactions commerciales de type Uber). En complément des volets précédents, vous devrez analyser et modéliser les flux d'information.
Ce que l’on va faire :
Le projet est réalisé par étapes :- la première aborde les notions de géolocalisation, de serveur Web et de capteurs,
- la seconde introduit les listes. La troisième, les interactions avec la carte,
- les étapes 4 à 9 abordent l’interface utilisateur et la gestion des données en local puis sur le Web. Ces étapes aboutissent à un canevas applicatif général adaptable à des appli-cations géo-localisés où les acteurs interagissent en réseau,
- les étapes 10 à 14 utilisent ce canevas pour une application de type Uber avec des transactions entre clients et conducteurs sur des courses avec une destination, une adresse de rendez-vous, un horaire, un itinéraire et un prix,
- l’étape 15 propose une évolution cartographique qui permet d’interagir à la volée avec les objets, de visualiser les mouvements en temps réel et de réduire les flux sur le réseau. Cette évolution correspond à des jeux très interactifs de type Pokemon ou équivalent.
Ressources en entrée :
Le code correspondant à chaque étape est fourni dans un dépot ou repository. Chaque version démarrant à la fin de la précédente. Par ailleurs, des exercices sont parfois ajoutés pour aider à la maîtrise de certaines notions comme les listes.version | lien | Description |
---|---|---|
V1 | geolocAppV1 | version 1 de l'application consistant à afficher une carte avec deux marqueurs correspondant à la position de l'utilisateur et à celle d'une adresse dictée au téléphone |
geolocListEx | exercices de navigation dans les données avec une liste de noms et une liste qui comprend les attributs de chaque nom | |
V2 | geolocAppV2 | version 2 qui permet de gérer et d'afficher une liste d'utilisateurs avec des symboles dont la couleur dépend du type et du statut |
V3 | version 3 qui permet d'interagir avec des fonctions de zoomn, dezoom, panoramique et de recentrage automatique | |
Notions abordées :
- Les listes,
- Programmation évènementielle,
- Processus asynchrones,
- Analyse et décomposition fonctionnelle,
- La géolocalisation et ses capteurs,
- Variables, (pseudo)constantes et règles de nommage,
- Modèles de données.
Version | Notions abordées | |
---|---|---|
1 | Se localiser sur une carte | Adresses internet et URL Serveurs et Api (Interface Applicative) Capteurs : reconnaissance vocale, |
2 | Localiser les utilisateurs | Les listes et listes de listes Procédures et utilitaires |
3 | Interagir avec la carte | Evènements, Architecture logicielle modularité |
4 | Interface et outils de debug | |
5 | Enregistrer son profil | Données permanentes, base de données locale |
6 | Enregistrer dans BD locale | |
7 | Partager avec une BD Web | Bases de données partagées sur le Web, Processus asynchrone |
8 | Distinguer les groupes | Gestion, administration des données |
9 | Gérer les identifications | |
10 | Calculer les distances | Fonctions et outils géographiques |
1& | Effectuer des transactions | Business model, Transactions via une base dans le cloud |
12 | Charger avec un flashcode | Diffuser une application vers d’autres utilisateurs |
13 | Calculer les itinéraires | Utiliser un serveur de données au format XML |
14 | Rechercher une adresse | Le géocodage inversé |
15 | Gérer des interactions en temps quasi réel | Utiliser les lutins Gérer la conversion entre coordonnées géographiques et écran. |
Abréviations et acronymes
Vous pourrez effectuer l’ensemble des travaux avec la version française d’App Inventor. Nous utiliserons toutefois quelques termes latins (comme data) ou anglais, en particulier pour les fonctions de base ou pour naviguer plus facilement dans la documentation qui est souvent en anglais. Celle d’App Inventor et aussi celle des serveurs utilisés.MAJ | Mise à jour |
Data | Données en latin et en anglais (terme courant utilisé à la place de données) |
Update | Equivalent anglais de mise à jour (ou MAJ) |
Delete | Détruire |
Tag | Un tag est une étiquette. Ce terme permet d’identifier un enregistrement ou un jeu de données. Il nous servira pour identifier chaque enregistrement dans la base de données. Les mêmes tags seront utilisés dans une liste, pour identifier les points ou personnes affichés sur la carte.
Dans cette application chaque tag est associé à des données dont la géolocalisation la date de mise à jour, le type, le statut et un ensemble d’autres informations qui nous permettront de gérer les transactions entre les personnes représentées par es tags. |
URL | Uniform Resource Locator : adresse qui permet d’accéder à une ressource. Elle comprend le protocole, l’hôte, le chemin de la ressource et les paramètres de la re-quête qui indiquent au serveur le produit ou service demandé, par exemple l’emprise ou l’échelle d’une carte. |
URI | Uniform Resource Identifier (équivalent de URL) |